Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"

8.5. Oïècaíèe ïoäïpoãpaìì

8.5.1. Beêòop oøèáêè

B ÿ÷eéêax ERRVECT xpaíèòcÿ aäpec ïoëüçoâaòeëücêoé peaêöèè ía oøèáêó ÄOC. Ïpè ïepexoäe ía íee â cëó÷ae oøèáêè â aêêóìóëÿòope íaxoäèòcÿ êoä oøèáêè:

   1-3 - oøèáêè RWTS,
   ¤28 - ôaéë íe íaéäeí,
   ¤29 - íeò câoáoäíoé ïaìÿòè ía äècêe,
   ¤2A - çaïècü â çaïepòûé ôaéë,
   ¤2B - ÷òeíèe èç ôaéëa ïpè èc÷epïaíèè äaííûx,
   ¤2E - ïoâòopíoe oòêpûòèe óæe oòêpûòoão ôaéëa,
   ¤2F - íeâepíûé òèï ôaéëa,
   ¤30 - íeò câoáoäíûx áóôepoâ äëÿ oòêpûòèÿ ôaéëa,
   ¤4F - óíè÷òoæeíèe èëè ïepeçaïècü çaïepòoão ôaéëa.

8.5.2. Áëoêoâûé oáìeí c äècêoì: 1 ópoâeíü

Äëÿ íaèáoëee ècïoëüçóeìûx çoí äaííûx â ïaìÿòè âûäeëeíû ocoáûe áóôepa, a äëÿ íaèáoëee ÷acòûx ôopì oápaùeíèÿ ê RWTS äëÿ ÷òeíèÿ/çaïècè áëoêoâ ïpeäócìoòpeíû cïeöèaëüíûe âûçoâû.

Áóôepa:

------------------------------------------------
Èíä Ccûëêa Aäpec   Coäepæaíèe
------------------------------------------------
 0  BUFT   ïepeì  áóôep ò/c-cïècêa òeê.ôaéëa
 2  BUFD   ïepeì  áóôep òeê.áëoêa äaííûx ôaéëa
 4  BVTOC  ¤BF00  áóôep VTOC òeê.aêòèâíoão äècêa
 6  BTSL   ¤0200  còaíäapòíûé áóôep ò/c-cïècêa 
 8  BCAT   ¤0500  áóôep òeê.áëoêa êaòaëoãa
------------------------------------------------

Ccûëêa - ýòo ïapa ÿ÷eeê ÄOC, coäepæaùaÿ aäpec óêaçaííoão áóôepa.

Bûçoâû:

CALLRTS - ×òeíèe áëoêa

CALLWTS - Çaïècü áëoêa

            Bxoä:  A=òpeê, Y=ceêòop, X=èíäeêc áóôepa
            Bûxoä: ía ERRVECT ïpè oøèáêe, èía÷e C=A=0

CALLRWTS- ×òeíèe/çaïècü áëoêa

            Bxoä: òoò æe, C=0 äëÿ ÷òeíèÿ, 1 äëÿ çaïècè
            Bûxoä: òoò æe

PUTCAT - ×òeíèe paçäeëa êaòaëoãa â áóôep CATAL

GETCAT - Çaïècü paçäeëa êaòaëoãa èç áóôepa CATAL

            Bxoä: TCAT/SCAT (¤91/92) - ò/c paçäeëa
            Bûxoä: êaê ó CALLRWTS

PUTVTOC - Çaïècü VTOC èç áóôepa, ecëè áûëè èçìeíeíèÿ â íeì

(VTOCHAN/=0)

WRVTOC - Áeçócëoâíaÿ çaïècü VTOC

GETVTOC - ×òeíèe VTOC â áóôep

            Bxoä: íeò
            Bûxoä: êaê ó CALLRWTS, Z=0

CHEKVTOC- Ïpoâepêa, VTOC êaêoão äècêa, íaxoäèòcÿ â áóôepe, çaïècü ía ìecòo òeêóùeão, ecëè íóæeí äpóãoé, ÷òeíèe íoâoão, ecëè oí eùe íe c÷èòaí

            Bxoä: íoìep äècêoâoäa â DRIVER (¤3B3)
            Bûxoä: êaê ó CALLRWTS

Èìeíío ýòè ïoäïpoãpaììû âeäóò êoíòpoëü òoìa äècêa: ïoêa ecòü íeçaêpûòûe ôaéëû (VOLNUM/=0), VTOC ìeíÿòü íeëüçÿ.

GETTSL - ×òeíèe/çaïècü ò/c-cïècêa â áóôep TSLIST

            Bxoä: TLIST/SLIST (¤94/95) - ò/c-aäpec
                  C=0 äëÿ ÷òeíèÿ, 1 äëÿ çaïècè
            Bûxoä: êaê ó CALLRWTS

8.5.3. Èícòpóìeíòû äëÿ oápaáoòêè ôaéëoâ: 2 ópoâeíü

Bo âcex ïoäïpoãpaììax ýòoão ópoâíÿ âoçìoæeí âûxoä ía ERRVECT ïpè oøèáêax oáìeía c äècêoì.

NEWSECT - Bûäeëeíèe áëoêa ïaìÿòè

            Bxoä: A=æeëaeìûé òpeê
            Bûxoä: ía ERRVECT, cëè íeò câoáoäíûx áëoêoâ,
                   èía÷e A/X - ò/c âûäeëeííoão áëoêa

DELSECT - Ocâoáoæäeíèe áëoêa ïaìÿòè

            Bxoä: A/X - ò/c ocâoáoæäaeìoão áëoêa
            Bûxoä çía÷eíèÿ íe èìeeò

Oáe ïoäïpoãpaììû èçìeíÿþò ìacêè çaíÿòûx áëoêoâ âo VTOC.

ADVANCAT- Ïepexoä ê cëeäóþùeìó ôaéëó â êaòaëoãe

            Bxoä: â CATAL íaxoäèòcÿ òeêóùèé áëoê êaòaëoãa
                  TCAT/SCAT (¤91/92) - eão ò/c-aäpec
                  SHIFT (¤93) - cìeùeíèe paçäeëa òeê.ôaéëa
            Bûxoä:C=0, SHIFT - cìeùeíèe cëeä.ôaéëa (+¤23),
                  ïpè íeoáxoäèìocòè â áóôep c÷èòaí cëeä.áëoê
                  TCAT/SCAT - eão aäpec
                  C=1, ecëè cëeä.áëoêa íeò (pacøèpeíèe=0/0)

BEGCAT - Hacòpoéêa ía ía÷aëo êaòaëoãa

            Bxoä: A/Y - ò/c-aäpec êaòaëoãa (oáû÷ío èç VTOC).

Äaëüøe èìèòèpóeòcÿ ïepexoä ê 1 ôaéëó, êaê âûøe

FINDNAME- Ïoècê ôaéëa â êaòaëoãe

            Bxoä: NAMEBUF (¤300-31D) - èìÿ ôaéëa
                  FILETYP (¤53) - òèï ôaéëa, êaê â êaòaëoãe,
                      ecëè d7=1, òo ëþáoé
            Bûxoä: C=1, ecëè ôaéë íe íaéäeí
                   C=0 + âûxoä ADVANCAT + â áóôepe TSLIST
                   íaxoäèòcÿ ò/c-cïècoê ôaéëa, ecëè íaéäeí

FINDMAKE- Ïoècê è coçäaíèe ôaéëa â êaòaëoãe

            Bxoä: òoò æe
            Bûxoä: òoò æe; ecëè ôaéë íe íaéäeí, òo èùeòcÿ
                  ïepâûé çaòepòûé ôaéë èëè êoíeö êaòaëoãa,
                  è çaíocèòcÿ èíôopìaöèÿ o coçäaííoì ôaéëe;
                  ïpè íeoáxoäèìocòè êaòaëoã pacøèpÿeòcÿ;
                  coçäaeòcÿ ïócòoé ò/c-cïècoê ôaéëa (INITLIST)

RFIFOP - Ïpoâepêa, oòêpûò ëè ôaéë: âeäeòcÿ ïóòeì cpaâíeíèÿ ÿ÷eeê DRN,TCAT,SCAT,SHIFT (¤90-93) c cooòâeòcòâ. áaéòaìè èíôopìaöèoííûx áóôepoâ âcex ôaéëoâ; âûçûâaeòcÿ oáû÷ío ïocëe FINDNAME èëè FINDMAKE

            Bxoä: óêaçaííûe ÿ÷eéêè, èíôopì.áóôepa ôaéëoâ
            Bûxoä: ía ERRVECT, ecëè ôaéë óæe oòêpûò
                   èía÷e C=1

READFILE- Ïoècê ôaéëa: âûçoâ CHECKVTOC, FINDNAME è RFIFOP

            Bûxoä: êaê ó RFIFOP, C=0, ecëè ôaéë íe íaéäeí

INITLIST- Paçìeòêa ò/c-cïècêa ôaéëa

            Bûxoä: oáíóëeíèe áóôepa TSLIST,
                   TLIST/SLIST (¤94-95) - ò/c-aäpec cïècêa

RWRZER - Ïepeïècü èíôopì. áóôepa ôaéëa c 4 ía 0 còpaíèöó

RWRSTOR - Ïepeïècü èíôopì. áóôepa ôaéëa c 0 ía 4 còpaíèöó

            Bxoä: X=íoìep áóôepa (cìeùeíèe ía 4 còp.)

PARAMSX - Hacòpoéêa ccûëoê ía áóôepa ôaéëoâ

            Bxoä: X=íoìep áóôepa ôaéëa
            Bûxoä: ADRTSL (¤3A-3B) = BUFT = aäpec áóôepa TCC
                   ADRBUF (¤3C-3D) = BUFD = aäpec áóôepa äaííûx

RDATA - ×òeíèe áëoêa äaííûx ïo aäpecó â TCC

WDATA - Çaïècü áëoêa äaííûx ïo aäpecó â TCC, ecëè áëoê ìeíÿëcÿ (ISCHAN/=0)

            Bxoä: ADRTSL (¤3A-3B) - aäpec áóôepa TCC,
                  SHLIST (¤96) - cìeùeíèe ò/c-aäpeca â TCC

EXPAND - Pacøèpeíèe TCC: coçäaíèe íoâoão áëoêa è íacòpoéêa ccûëoê ía íeão èç òeêóùeão è èç íeão ê òeêóùeìó

            Bxoä: ADRTSL - aäpec áóôepa TCC,
                  TLIST/SLIST - ò/c-aäpec òeê.paçäeëa
            Bûxoä: âce òo æe íacòpoeío ía íoâûé paçäeë

RDNEXT - ×òeíèe cëeäóþùeão áëoêa ôaéëa

            Bxoä: X=íoìep ôaéëa
            Bûxoä: â áóôepe äaííûx - cëeäóþùèé áëoê, âce
                  óêaçaòeëè íóæíûì oápaçoì èçìeíeíû

8.5.4. Paáoòa c ôaéëaìè: 3 ópoâeíü

Ha ýòoì ópoâíe peaëèçóþòcÿ còaíäapòíûe oïepaöèè íaä ôaéëaìè, ïoçâoëÿþùèe çaáûòü ïpo èx âíóòpeííþþ opãaíèçaöèþ.

1 ãpóïïa ïoäïpoãpaìì coçäaeò è ïoääepæèâaeò còpóêòópó èíôopìaöèoííûx áóôepoâ oòêpûòûx ôaéëoâ è âoçìoæíocòü ïocòoÿííoé paáoòû c íèìè.

OPEN - Oòêpûòèe ôaéëa: ïoècê câoáoäíoão áóôepa, ïoècê èëè coçäaíèe ôaéëa ía äècêe, coçäaíèe èíôopì.áóôepa, ÷òeíèe 1 áëoêa ôaéëa â ïaìÿòü, ócòaíoâêa 0 ïoçèöèè

            Bxoä: NAMEBUF (¤300-31D) - èìÿ ôaéëa
            Bûxoä: íopìaëüíûé èëè ía ERRVECT

POSITION- Ïoçèöèoíèpoâaíèe ôaéëa

            Bxoä: LOCADR (¤2D-2F) - íoâaÿ ïoçèöèÿ ôaéëa
            Bûxoä: ôaéë íacòpoeí ía äaííóþ ïoçèöèþ
                   âûxoä ía ERRVECT, ecëè òaêoé ïoçèöèè íeò

RDBYTE - ×òeíèe áaéòa èç ôaéëa: äëÿ òeêcòoâûx ïpoâepêa è ócòaíoâêa áaéòa EOF (¤A0) â èíôopì.áóôepe

            Bxoä: X=íoìep ôaéëa
            Bûxoä: A=c÷èòaííûé áaéò, X,Y coxpaíÿþòcÿ, ecëè
                   íe áûëo âûxoäa ía ERRVECT ïo oøèáêe

WRBYTE - Çaïècü áaéòa â ôaéë: ïpoâepêa çaùèòû ôaéëa, äëÿ òeêcòoâûx ócòaíoâêa EOF

            Bxoä: A=çaïècûâaeìûé áaéò, X=íoìep ôaéëa
            Bûxoä: A,X,Y coxpaíÿþòcÿ, ecëè íe áûëo âûxoäa
                   ía ERRVECT ïo oøèáêe

Çaìe÷aíèe. Oáe ïoäïpoãpaììû â cëó÷ae oøèáêè ócòaíaâëèâaþò ïpèçíaê IOERR (¤3B7) /= 0, ïoçâoëÿþùèé oòëè÷èòü oøèáêó ïpè ââoäa-âûâoäe oò äpóãèx.

SHUTFILE- Çaêpûòèe ôaéëa: çaïècü ía äècê òeêóùeão paçäeëa äaííûx, TCC, VTOC, ecëè oíè ìeíÿëècü, ècïpaâëeíèe äëèíû ôaéëa â êaòaëoãe, ocâoáoæäeíèe èíôopì.áóôepa (çaïècü â DRN 0)

            Bxoä: FILENUM (¤48) = òèï ôaéëa

2 ãpóïïa ïoäïpoãpaìì âûïoëíÿeò eäèíoâpeìeííûe äeécòâèÿ è íe òpeáóeò cïeöèaëüíoé íacòpoéêè.

DELETE - Óíè÷òoæeíèe ôaéëa: ïpoâepêa çaùèòû, çaïècü FF â ïepâûé áaéò paçäeëa êaòaëoãa, ocâoáoæäeíèe âcex eão ceêòopoâ; oòcóòcòâèe ôaéëa oøèáêè íe âûçûâaeò

            Bxoä: NAMEBUF - èìÿ ôaéëa

LOCK - Çaùèòa ôaéëa ïo çaïècè,

UNLOCK - cíÿòèe çaùèòû ôaéëa - ócòaíoâêa/cápoc còapøeão áèòa â òèïe ôaéëa â êaòaëoãe

CATALOG - Bûäa÷a êaòaëoãa äècêa ía òeêóùee ócòpoécòâo âûâoä (÷epeç COUT)

LOAD - Çaãpóçêa ôaéëa â ïaìÿòü

            Bxoä: NAMEBUF - èìÿ ôaéëa
                  FILETYP (¤53) - òèï ôaéëa, êaê â FINDNAME
                  BEGADR (¤98-99) - aäpec ía÷aëa â ïaìÿòè
                  (ecëè 99 áaéò = 0, aäpec áepeòcÿ èç TCC)
                  äëèía áepeòcÿ èç TCC
            Bûxoä: C=0, ecëè ôaéë íe íaéäeí, èía÷e C=1

SAVE - Çaïècü ó÷acòêa ïaìÿòè ía äècê, êaê ôaéëa

            Bxoä: NAMEBUF - èìÿ ôaéëa
                  FILETYP (¤53) - òèï ôaéëa
                  BEGADR (¤98-99) - ía÷aëüíûé aäpec
                  LENGTH (¤9A-9B) - äëèía â áaéòax
                  BEGOBJ (¤9C-9D) - äoïoëí.èíôopìaöèÿ äëÿ
                      ïepeìeùaeìûx ôaéëoâ, ïèøíòcÿ â TCC

Çàêðûòü îêíî         Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"